package org.sws.domain.behavior.repository;

import org.sws.domain.behavior.model.aggregate.BehaviorRebateAggregate;
import org.sws.domain.behavior.model.entity.BehaviorRebateConfigEntity;

import java.util.List;

/**
 * @Author sws
 * @Date 2025/3/27 11:45
 * @description:
 */
public interface IBehaviorRebateRepository {
    /**
     * 根据用户行为类型获取配置集合
     * @param typeCode 用户行为类型
     * @return 配置集
     */
    List<BehaviorRebateConfigEntity> queryBehaviorRebateConfig(String typeCode);

    /**
     * 保存行为记录单信息
     * @param userId 用户id
     * @param behaviorRebateAggregates 聚合对象
     */
    void saveUserRebateRecord(String userId, List<BehaviorRebateAggregate> behaviorRebateAggregates);

    /**
     * 判断用户是否签到
     *
     * @param userId        用户id
     * @param outBusinessNo 业务标识 签到则是日期字符串，支付则是外部的业务ID
     * @return true:已签到 false:未签到
     */
    Boolean isCalendarSignRebate(String userId, String outBusinessNo);
}
